package com.ruoyi.mapper;

import com.ruoyi.domain.BasisCaseLoadingTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 案例关联的任务Mapper接口
 * 
 * @author wangzebing
 * @date 2025-05-14
 */
public interface BasisCaseLoadingTaskMapper 
{
    /**
     * 查询案例关联的任务
     * 
     * @param taskId 案例关联的任务主键
     * @return 案例关联的任务
     */
    public BasisCaseLoadingTask selectBasisCaseLoadingTaskByTaskId(String taskId);

    /**
     * 查询案例关联的任务列表
     * 
     * @param basisCaseLoadingTask 案例关联的任务
     * @return 案例关联的任务集合
     */
    public List<BasisCaseLoadingTask> selectBasisCaseLoadingTaskList(BasisCaseLoadingTask basisCaseLoadingTask);

    /**
     * 新增案例关联的任务
     * 
     * @param basisCaseLoadingTask 案例关联的任务
     * @return 结果
     */
    public int insertBasisCaseLoadingTask(BasisCaseLoadingTask basisCaseLoadingTask);

    /**
     * 修改案例关联的任务
     * 
     * @param basisCaseLoadingTask 案例关联的任务
     * @return 结果
     */
    public int updateBasisCaseLoadingTask(BasisCaseLoadingTask basisCaseLoadingTask);

    /**
     * 删除案例关联的任务
     * 
     * @param taskId 案例关联的任务主键
     * @return 结果
     */
    public int deleteBasisCaseLoadingTaskByTaskId(String taskId);

    /**
     * 批量删除案例关联的任务
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBasisCaseLoadingTaskByTaskIds(String[] taskIds);

    //修改任务状态
    public boolean updateTaskStatus(String loadingId);


    public List<BasisCaseLoadingTask> findByCaseLoadingId(@Param("loadingId") String loadingId);


    List<Map<String, Object>> queryCaseList(Long uid);

    public List<BasisCaseLoadingTask> queryTaskList(BasisCaseLoadingTask basisCaseLoadingTask);


    List<Map<String, Object>> queryCaseListForS(Long uid);


    public List<BasisCaseLoadingTask> queryTaskListForS(BasisCaseLoadingTask basisCaseLoadingTask);

    //下发任务
    boolean issuedTask(@Param("loadingId") String loadingId, @Param("taskId") String taskId);


    public List<BasisCaseLoadingTask> queryTaskListFrom(@Param("loadingId") String loadingId, @Param("positionId") String positionId, @Param("equipmentId") String equipmentId, @Param("uavId") String uavId);

    int updateByPushId(@Param("taskId") String taskId);

    List<BasisCaseLoadingTask> queryUTaskList (Long uid);

    BasisCaseLoadingTask findByLoadingIdAndUserIdFormloadingTaskCurrectStatus(@Param("loadingId") String loadingId,@Param("userId") Long userId);


    public int updateUserTaskStatus( @Param("chooseCaseId")  String chooseCaseId, @Param("taskId")  String taskId, @Param("newValue")  int newValue, @Param("userid")  long userid);

    //清除演训结果
    boolean delTaskStatus(@Param("loadingId") String loadingId);

    boolean delscoreIsDel(@Param("caseId") String caseId);
}
